This invention relates to controlling carry-over propagation and at the same time avoiding inadvertent emulation of start codes and more particularly to controlling carry-over and start code emulation in arithmetic encoded character strings.
Start codes are inserted between sections of transmitted characters for synchronizing communication equipment. A start code or synchronization code typically consists of either a long string of 1's followed by a zero or a long string of 0's followed by a 1. One solution to avoiding start code emulation comprises inserting one or more opposite bit(s) after detecting a fixed number of one's or zero's, usually one less than the string of one's or zeros's that would comprise the start code. The inserted bits are recognized and deleted before decoding the encoded data.
Techniques are known in the art for providing carry-over control in encoded signals. Prior carry-over control techniques for use in arithmetic coding and decoding, are described in U.S. Pat. No. 4,973,961 issued Nov. 27, 1990 to Chamzas et al. and U.S. Pat. No. 4,463,342 issued Jul. 31, 1984 to Langdon, Jr. et al. Other techniques for controlling carry-over in arithmetic encoded signals are described in an article entitled "ARITHMETIC CODING FOR DATA COMPRESSION", Communications of the ACM, June 1987, volume 30, Number 6, pages 520-540 and an article entitled "A Multi-Purpose VLSI Chip For Adaptive Data Compression of Bilevel Images", IBM Journal of Research Development, Vol 32, No. 6, November 1988, pages 775-795.
The carry-over control techniques disclosed in U.S. Pat. Nos. 4,973,961 and 4,463,342 and in the Communications of the ACM and IBM Journal articles, noted above, use zero bit/character stuffing to intercept carry-over and use counters to realize a long guard register. These carry-over techniques are based on the knowledge that unresolved bit strings that might be changed by a possible carry-over have a common pattern, "011 . . . 1". Thus, a counter can be used to track the length of the unresolved bit string to be resolved.
The output of the carry-over approaches referenced above can be bursty and are not feasible for some applications. The unresolved string can also be as long as the whole encoded message, and thus the counter must be long enough to register the length of the whole message. The carry-over control techniques described above can also inadvertently emulate start codes.
Accordingly, a need remains for controlling long carry-over propagation in encoded signals while at the same time preventing emulation of start codes.